/*
 * Variables globales
 */
var permisos = ''; //guardaremos la lista con los permisos
var listado_gestores = ''; //
var linea_gestor = 0; //nos sirve como contador por cada linea al añadir un gestor nuevo en el formulario de editar usuario

/*
 * 
 */
var usuarios = function () {
	return {
		editar: function(id) {
			form_editar_usuario(id);
		},
		hideeditar: function () {
			editModal.modal('hide');
		},
		eliminar: function(id) {
			confirmar_eliminacion(id);
		},
		inhabilitar: function (id){
			cambio_estado_usuario(id,false);
		},
		habilitar: function (id){
			cambio_estado_usuario(id,true);
		}
	};
}();

var test = function () {
	return {
		editar: function(){
			alert("mierda");
		}
	};
}();


function form_editar_usuario(id){
	
	$.ajax({
	    url: url_base+"info_usuario_por_id",
	    data:{id:id},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
			var info = jQuery.parseJSON(result);
			
			fcf.hidecargando();
	
			listado_gestores = '';
			$.each(info.gestores, function( key, value ) {
            	listado_gestores += '<option value="'+value.id+'">'+value.nombre+'</option>';
			});
			permisos = '';
			$.each(info.permisos, function( key, value ) {
				permisos += '<option value="'+value.id+'">'+value.tipo+'</option>';
			});
			
			
			var editModal = $('<div class="modal fade " id="basicModal" tabindex="-1" data-dismiss="modal" role="dialog" aria-labelledby="basicModal" aria-hidden="true">'+
					  '<div class="modal-dialog"><div class="modal-content">'+
					  	'<div class="modal-header">'+
					  		'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>'+
					  			'<h4 class="modal-title" id="myModalLabel">Editar usuari</h4>'+
					  				'<div><div class="modal-body">'+
					  					'<div class="row">'+
								'<div class="col-md-12">'+
								    '<form class="form-horizontal row-border" id="form_editar_usuario">'+
							            '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Nom usuari</label>'+
							                '<div class="col-sm-6">'+
							                    '<input type="text" id="nom" value="'+info.usuario.nombre+'" class="form-control">'+
							                '</div>'+
							            '</div>'+
							            '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Usuari</label>'+
							                '<div class="col-sm-6">'+
							                    '<input type="text" id="usuari" value="'+info.usuario.usuario+'" class="form-control">'+
							                    '<p id="existe_usuario"></p>'+
							                    '<p style="margin-top:5px; margin-bottom:0;"><buttn class="btn btn-link" onclick="javascript:comprobar_disponibilidad();">Comprobar Disponibilitat</buttn></p>'+
							                '</div>'+
							            '</div>'+
							            '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Password</label>'+
							                '<div class="col-sm-6">'+
							                    '<input type="password" placeholder="Password" id="pass" class="form-control">'+
							                '</div>'+
							            '</div>'+
						                '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Email</label>'+
							                '<div class="col-sm-6">'+
							                    '<input type="email" id="email" value="'+info.usuario.email+'" class="form-control">'+
							                '</div>'+
						                '</div>'+
						                '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Rol usuari</label>'+
							                '<div class="col-sm-3">'+
						                    	'<select id="rol">'+permisos+'</select>'+
						                	'</div>'+
					                	'</div>'+
						                '<div class="form-group">'+
							                '<label class="col-sm-3 control-label">Gestor Predeterminat</label>'+
							                	'<div class="col-sm-3">'+
							                	'<select id="gestor_defecto">'+listado_gestores+'</select>'+
							                '</div>'+
							                '<div class="col-sm-3">'+
						                    	'<select id="permiso_gestor_defecto">'+permisos+'</select>'+
						                	'</div>'+
						                	'<div class="col-sm-3"><a class="btn btn-default btn-sm" onclick="addRowGestor();"><div class="fa fa-plus">Afegir</div></a>'+
						                	'</div>'+
					                	'</div>'+
					                	 '<div class="form-group mas_gestores" >'+
					                	 '</div>'+
							        '</form>'+
								'</div>'+
							'</div>'+
					  		'</div>'+
					  		'<div class="modal-footer">'+
					  				'<button type="button" class="btn btn-default" data-dismiss="modal">Tancar</button>'+
					  				'<button type="button" onClick="javascript:editar_usuario('+id+');" class="btn btn-primary">Guardar</button>'+
					  		'</div>'+
					  	'</div>'+
					  '</div>'+
					'</div>');
			linea_gestor = 0; //inicializamos la variable
			$( ".linea_nuevo_gestor" ).each(function() {
				$(".nuevo_gestor").remove();
				$(".permiso_mas_gestores").remove();
			});
			$(".mas_gestores").remove();
			editModal.modal();
			//gestion_usuarios.ajax.reload();
	 	}
	});
}

function addRowGestor(){
	linea_gestor++;
	$(".mas_gestores").append('<div class="form-group linea_nuevo_gestor">'+
							    '<label class="col-sm-3 control-label">Gestor disponible</label>'+
								'<div class="col-sm-3">'+
									'<select class="nuevo_gestor">'+listado_gestores+'</select>'+
								'</div>'+
								'<div class="col-sm-3">'+
									'<select class="permiso_mas_gestores">'+permisos+'</select>'+
								'</div>'+
							'</div>');
}

function cambio_estado_usuario(id,estado){
	
	var gestion_usuarios = $('#gestion_usuarios').DataTable();
	
	$.ajax({
	    url: url_base+"cambioEstadoUsuario",
	    data: {id:id,estado:estado},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
			fcf.hidecargando();
			gestion_usuarios.ajax.reload();
	 	}
	});
}


function editar_usuario(id){
	
	var nom = $("#nom").val();
	var usuari = $("#usuari").val();
	var email = $("#email").val();
	var pass = $("#pass").val();
	var gestor_defecto = $("#gestor_defecto").val();
	var permiso_gestor_defecto = $("#permiso_gestor_defecto").val();
	//$usuario['menu_defecto'] = $this->usuariosUtils->setMenuDefecto($post->gestor_defecto,$post->permiso_gestor_defecto);
	var rol = $("#rol").val();
	var gestores = get_row_mes_gestors_editar_usuari();
    
	$.ajax({
	    url: url_base+"editar_usuario",
	    data: {id:id,nom:nom,usuari:usuari,email:email,pass:pass,rol:rol,gestor_defecto:gestor_defecto,permiso_gestor_defecto:permiso_gestor_defecto,mes_gestors:gestores},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
			location.reload();
	 	}
	});
}

function get_row_mes_gestors_editar_usuari(){
	var gestores = [];
	
	$( ".nuevo_gestor" ).each(function( index, element ) {
		
		var gestor = [];
		var permiso = [];
				
		var aux = [];

		gestor = $(this).val();
		
		$( ".permiso_mas_gestores" ).each(function( index, element ) {
			permiso = $(this).val();
		});
		
		aux = aux.concat(gestor,permiso); 
		gestores.push(aux);
	
	});

	
	return aux = JSON.stringify(gestores);
}


function form_crear_usuario(){
	
	var usuari = $("#usuari").val();
	var nom_usuari = $("#nom_usuari").val();
	var contrasenya = $("#contrasenya").val();
	var contrasenya2 = $("#contrasenya2").val();
	var email = $("#email").val();
	var email2 = $("#email2").val();
	var rol_usuari = $("#rol").val();
	var gestor_defecto = $("#lista_permisos_usuari").select2("val");
	var permiso_gestor_defecto = $("#permiso_gestor_defecto").select2("val");
	var gestores = $("#listado_gestores_usuario").select2("val");
	
	$.ajax({
	    url: url_base+"nuevo_usuario",
	    data: {usuari:usuari,nom:nom_usuari,pass:contrasenya,email:email,rol:rol_usuari,gestor_defecto:gestor_defecto,permiso_gestor_defecto:permiso_gestor_defecto,gestores:gestores},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
			fcf.hidecargando();

			if(result == 'true'){
				fcf.showText("Usuari creat correctament.",true);
			}else{
				fcf.showText(result,true);
			}
	 	}
	});
}

//Definimos funciones de la vista admin/crear_usuario
function crear_usuario(){
	$('#form_crear_usuario').stepy({finishButton: true, titleClick: true, block: true, validate: true}); 
    $('.stepy-navigator').wrapInner('<div class="pull-right"></div>'); //mueve botones del formulario(back,next) a la derecha

    $('#form_crear_usuario').validate({
    	validate: true,
        errorClass: "help-block",
        validClass: "help-block",
        highlight: function(element, errorClass,validClass) {
           $(element).closest('.form-group').addClass("has-error");
        },
        unhighlight: function(element, errorClass,validClass) {
            $(element).closest('.form-group').removeClass("has-error");
        }
     });
    $("#contrasenya").keyup(function(){ $("#repetir_contrasenya").show();  }); //cuando empezamos a escribir la contraseña mostramos input confirmacion
    $("#email").keyup(function(){ $("#repetir_email").show(); }); //idem contraseña
    $("#rol,#lista_permisos_usuari,#listado_gestores_usuario,#permiso_gestor_defecto,#rol_usuari").select2(); //creamos inputs seleccionables
    $("#listado_gestores_usuario").val(''); //vaciamos listado
}

function comprobar_disponibilidad(){
	
	$.ajax({
	    url: url_base+"comprobar_disponibilidad",
	    data: {usuario:$("#usuari").val()},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
	
			var info = jQuery.parseJSON(result);

			fcf.hidecargando();
			if(result == false){
				$("#existe_usuario").html('Usuari disponible.');
			}else{
				$("#existe_usuario").html('L\'usuari existe');
			}
	 	}
	});
}

function confirmar_eliminacion(id){
	var confirmacion = $('<div class="modal fade form_confirmacion" style="top:15%;" tabindex="-1" role="dialog" aria-hidden="true">'+
		   	'<div class="modal-dialog" >'+
			'<div class="modal-content">'+
				'<div class="modal-header">'+
					'<h2>Eliminar usuari</h2>'+
				'</div>'+
				'<div class="modal-body">confirmar eliminacio usuari'+
				'</div>'+
				'<div class="modal-footer">'+
		  			'<button type="button" class="btn btn-default" data-dismiss="modal">Cancel·lar</button>'+
		  			'<button type="button" onclick="javascript:eliminar_usuario('+id+')" class="btn btn-primary">Confirmar</button>'+
		  			'</div>'+
			'</div>'+
		'</div>'+
	'</div>');
	confirmacion.modal(); //iniciamos modal
}

function eliminar_usuario(id){
	
	var gestion_usuarios = $('#gestion_usuarios').DataTable();
	
	$.ajax({
	    url: url_base+"eliminarUsuarioPorId",
	    data: {id:id},
	    type: "POST",			      
		    beforeSend: function() {
		    fcf.cargando();	
		}, 
		success: function(result){
			fcf.hidecargando();
			$('.form_confirmacion').modal('hide'); // cerramos modal confirmacion
			gestion_usuarios.ajax.reload();
	 	}
	});
}
